/*- * See the file LICENSE for redistribution information. * * Copyright (c) 2002-2006 * Sleepycat Software. All rights reserved. * * $Id: LNInfo.java,v 1.1 2006/05/06 09:01:57 ckaestne Exp $ */ package com.sleepycat.je.cleaner; import com.sleepycat.je.dbi.DatabaseId; import com.sleepycat.je.dbi.MemoryBudget; import com.sleepycat.je.tree.LN; /** * The information necessary to lookup an LN. Used for pending LNs that are * locked and must be migrated later, or cannot be migrated immediately during * a split. Also used in a look ahead cache in FileProcessor. * * Is public for Sizeof only. */ public final class LNInfo { private LN ln; private DatabaseId dbId; private byte[] key; private byte[] dupKey; public LNInfo(LN ln, DatabaseId dbId, byte[] key, byte[] dupKey) { this.ln = ln; this.dbId = dbId; this.key = key; this.dupKey = dupKey; } LN getLN() { return ln; } DatabaseId getDbId() { return dbId; } byte[] getKey() { return key; } byte[] getDupKey() { return dupKey; } int getMemorySize() { int size = MemoryBudget.LN_INFO_OVERHEAD; if (ln != null) { size += ln.getMemorySizeIncludedByParent(); } if (key != null) { size += MemoryBudget.byteArraySize(key.length); } if (dupKey != null) { size += MemoryBudget.byteArraySize(dupKey.length); } return size; } }